今天要來介紹一個 Docker 私有庫工具 Harbor,Harbor 是由 VMWare 公司用 Go 語言所開發的開源軟體,用於除存團隊私有的 image,Harbor 提供了簡易的 UI 介面,包含權限控管,及跨機器的自動同步功能,且安裝容易。
上述提及 Harbor 提供權限控管的功能,以下介紹 Harbor 區分哪些權限:
Guest:
僅提供該用戶擁有 pull images
的權限Developer:
提供該用戶擁有 pull or push images
的權限Admin:
提供該用戶擁有管理該群組的所有權限,(EX:新增/汰除該群組人員、建立新專案、建立人員、選擇專案是否對外...)以 v1.7.5 做為範例
$ tar xvf 下載的壓縮檔案.tgz
docker-compose.yml
檔案內的掛載路徑,盡量別去汙染機器設定./data
or ./template
## 透過 sudo 或者 root 用戶執行。
sudo ./install.sh
以上三個步驟即可安裝完 Harbor,是不是很簡單呢?
接下來還需要設定幾個步驟,才有辦法從本機將 Image 推至 Harbor
## /etc/docker/daemon.json
{
"insecure-registries": ["<Your Harbor Domain> or <IP>"]
}
$ sudo systemctl daemon-reload && sudo systemctl restart docker
$ docker login <Your Harbor Domain> or <IP>
## 顯示的訊息
Username: admin
Password:
Login Succeeded
$ docker pull nginx:1.12.1
# 替 image 建立一個版號
$ docker tag <Your Harbor Domain> or <IP>/nginx/nginx:1.12.1 nginx:1.12.1
# 推至私有庫
$ docker push <Your Harbor Domain> or <IP>/nginx/nginx:1.12.1
# 從私有庫取image
$ docker pull <Your Harbor Domain> or <IP>/nginx/nginx:1.12.1
以上完成整體的建制 & 測試,並附上 Build Images 至 Harbor 的流程圖。
不好意思大大請問一下,
我修改了proxy中的nginx 80 port改成8080
但是當我使用docker login
Username: admin
Password:
Error response from daemon: Get http://harbor.bill.com:8080/v2/: Get http://harbor.bill.com/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry: dial tcp 127.0.0.1:80: connect: connection refused
他卻出現連線異常,請問是我有漏掉什麼東西嗎